{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c5f710a5",
   "metadata": {},
   "source": [
    "### 两个指数序列的互相关"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e55c67ca",
   "metadata": {},
   "source": [
    "Compute and plot the cross-correlation of two 16-sample exponential sequences, $x_a=0.8^n$and $x_b=0.92^n$, with $n≥0$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "1d0e71f7",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from scipy import signal\n",
    "import sympy\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "305cccf7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 16\n",
    "n = np.arange(0, N)\n",
    "\n",
    "a = 0.84\n",
    "b = 0.92\n",
    "\n",
    "xa = a**n\n",
    "xb = b**n\n",
    "\n",
    "r = signal.correlate(xa,xb)\n",
    "\n",
    "x = np.arange(-(N-1), N)\n",
    "\n",
    "fig, axs = plt.subplots()\n",
    "markerline, stemlines, baseline = axs.stem(\n",
    "    x, r, markerfmt='o', bottom= 0 )\n",
    "markerline.set_markerfacecolor('none')\n",
    "fig.savefig('ab的互相关（用correlate函数）.png',dpi=500)\n"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "id": "b8db0726",
   "metadata": {},
   "source": [
    "Determine c analytically to check the correctness of the result. Use a larger sample rate to simulate a continuous situation. The cross-correlation function of the sequences $x_a(n)=a_n$ and $x_b(n)=b_n$for $n≥0$, with $0<a$,$b<1$, is![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "7e7760bb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fs = 10;\n",
    "nn = np.linspace(-(N-1),(N-1),300)\n",
    "def cab(n):\n",
    "    i = 0\n",
    "    cnn = []\n",
    "    while i<len(n):\n",
    "        if n[i] > 0:\n",
    "            cn = (1 - (a*b)**(N-abs(n[i])))/(1 - a*b)*a**n[i]\n",
    "        if n[i] == 0:\n",
    "            cn = (1 - (a*b)**(N-abs(n[i])))/(1 - a*b)\n",
    "        if n[i] < 0:\n",
    "            cn = (1 - (a*b)**(N-abs(n[i])))/(1 - a*b)*b**(-n[i])\n",
    "        i = i+1\n",
    "        cnn = np.append(cnn,cn)\n",
    "    return cnn\n",
    "\n",
    "cout = cab(nn)\n",
    "fig,ax = plt.subplots()\n",
    "markerline, stemlines, baseline = ax.stem(\n",
    "    x, r, markerfmt='o', bottom= 0 )\n",
    "markerline.set_markerfacecolor('none')\n",
    "ax.plot(nn,cout)\n",
    "fig.savefig('ab的互相关（用互相关公式推导）.png',dpi=500)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "759e1edc",
   "metadata": {},
   "source": [
    "Verify that switching the order of the operands reverses the sequence."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "e8ff8160",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "r1 = signal.correlate(xb,xa)\n",
    "fig,ax1 = plt.subplots()\n",
    "markerline, stemlines, baseline = ax1.stem(x, r1, markerfmt='o', bottom= 0 )\n",
    "ax1.set_label('ba')\n",
    "markerline.set_markerfacecolor('none')\n",
    "\n",
    "\n",
    "rrev = list(reversed(r))\n",
    "markerline, stemlines, baseline = ax1.stem(x, rrev, markerfmt='*', bottom= 0 )\n",
    "ax1.set_label('reversed(ab)')\n",
    "markerline.set_markerfacecolor('none')\n",
    "\n",
    "fig.savefig('ba的互相关（用reversed验证）.png',dpi=500)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ba28ac11",
   "metadata": {},
   "source": [
    "Generate the 20-sample exponential sequence $x_c=0.77^n$. Compute and plot its cross-correlations with $x_a$ and $x_b$. Output the lags to make the plotting easier. xcorr appends zeros at the end of the shorter sequence to match the length of the longer one."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1a87542e",
   "metadata": {},
   "outputs": [],
   "source": [
    "xc = []\n",
    "for n in range(0, 20, 1):\n",
    "    x_ = 0.77**n\n",
    "    xc = np.append(xc, x_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "d713484f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "N1 = 20\n",
    "n1 = np.arange(0, N1)\n",
    "\n",
    "xa1 = a**n1\n",
    "xb1 = b**n1\n",
    "\n",
    "rac = signal.correlate(xa1,xc)\n",
    "rbc = signal.correlate(xb1,xc)\n",
    "\n",
    "x1 = np.arange(-(N1-1), N1)\n",
    "fig,axa = plt.subplots()\n",
    "markerline, stemlines, baseline = axa.stem(x1, rac, markerfmt='o', bottom= 0 )\n",
    "markerline.set_markerfacecolor('none')\n",
    "axa.set_title('correlate of xa and xc')\n",
    "fig.savefig('ac的互相关.png',dpi=500)\n",
    "\n",
    "fig, axb = plt.subplots()\n",
    "markerline, stemlines, baseline = axb.stem(x1, rbc, markerfmt='o', bottom= 0 )\n",
    "markerline.set_markerfacecolor('none')\n",
    "axa.set_title('correlate of xb and xc')\n",
    "fig.savefig('bc的互相关.png',dpi=500)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
